package demo7;

class Solution {
    public int sumNumbers(TreeNode root) {
        return dfs(root,0);
    }

    private int dfs(TreeNode root, int preSum) {
        // 计算值
        preSum = preSum * 10 + root.val;

        // 出口, 叶子节点
        if(root.left == null && root.right == null) return preSum;

        // 统计返回值
        int ret = 0;
        // 此处特判,如果下一个节点为null,没有遍历的意义
        if (root.left != null) ret += dfs(root.left, preSum);
        if (root.right != null) ret += dfs(root.right, preSum);

        return ret;
    }
}